{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e8de5c15-65a1-42d5-b485-4298c72bc6f7",
   "metadata": {
    "tags": []
   },
   "source": [
    "# 初识 seaborn\n",
    "\n",
    "<a href=\"https://seaborn.pydata.org/index.html\"><div align=\"center\"><img src=\"https://gitee.com/weiweqi/img_dw/raw/master/images/202112241648496.webp\" width=\"90%\"/></div></a>\n",
    "\n",
    "[Seaborn](https://seaborn.pydata.org/index.html) 是在 [Matplotlib](https://matplotlib.org/) 基础上，与 [Pandas](https://pandas.pydata.org/) 数据结构紧密集成，封装的一个 Python 高层 API 数据可视化库。Seaborn 不能替代 Maplotlib，而是 Matplotlib 的补充。相比 Matplotlib，Seaborn 支持 figure-level 的绘制，不需要配合各种复杂的参数，就可以绘制美观且丰富的统计图表，[kaggle](https://www.kaggle.com/)、[Tianchi](https://tianchi.aliyun.com/)等网站上，许多人都在使用 seaborn 进行数据分析。\n",
    "\n",
    "Seaborn 的作者是：Michael Waskom，同时今年他将 seaborn 发表了论文[《seaborn: statistical data visualization》](https://doi.org/10.21105/joss.03021)。\n",
    "\n",
    "## 安装 seaborn\n",
    "\n",
    "有两种方法，任选其一即可安装 seaborn\n",
    "\n",
    "- 使用pip安装\n",
    "```bash\n",
    "pip install seaborn\n",
    "```\n",
    "\n",
    "- 使用conda安装\n",
    "```bash\n",
    "conda install seaborn\n",
    "```"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6ea922e8",
   "metadata": {},
   "source": [
    "## 第一个 seaborn 图表\n",
    "\n",
    "因为 seaborn 的底层是 matplotlib，所以需要设置 ipython notebook 的 matplotlib 配置。\n",
    "参考 [IPython Built-in magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html)，matplotlib 有如下几个backends。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "fd4a50c1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Available matplotlib backends: ['tk', 'gtk', 'gtk3', 'wx', 'qt4', 'qt5', 'qt', 'osx', 'nbagg', 'notebook', 'agg', 'svg', 'pdf', 'ps', 'inline', 'ipympl', 'widget']\n"
     ]
    }
   ],
   "source": [
    "%matplotlib --list"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "96dcc855",
   "metadata": {},
   "source": [
    "大多数情况我们选择 ipython notebook 的 inline 后端，写法如下：\n",
    "```python\n",
    "%matplotlib inline\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "347edebb",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2cbd9ea6",
   "metadata": {},
   "source": [
    "### seaborn 自带的数据集\n",
    "\n",
    "seaborn自带的数据集（csv文件）的网址在`https://github.com/mwaskom/seaborn-data`， 我们使用`sns.load_dataset()` 函数下载下来，作为学习seaborn绘图的数据。\n",
    "```python\n",
    "sns.load_dataset(\n",
    "    # str 在https://github.com/mwaskom/seaborn-data上的数据文件名，不包含\".csv\"后缀。可以通过sns.get_dataset_names() 函数查看有哪些数据\n",
    "    name,\n",
    "    cache=True, # boolean, optional。True 表示启用缓存\n",
    "    data_home=None,  # string, optional。数据缓存的目录，可以通过 sns.get_data_home() 查看\n",
    "    **kws     # pandas.read_csv 中的其他参数\n",
    ") -> pandas.DataFrame\n",
    "```\n",
    "\n",
    "- 如果出现 `URLError: <urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应，连接尝试失败。` 说明撞墙了。\n",
    "\n",
    "- 解决方法：将 `F:\\Miniconda3\\envs\\visual\\lib\\site-packages\\seaborn\\utils.py` 中 第519行 的 `url = \"https://github.com/mwaskom/seaborn-data\"` 改为 `url = \"https://hub.fastgit.org/mwaskom/seaborn-data\"` 或者改为 `url = \"https://github.com.cnpmjs.org/mwaskom/seaborn-data\"`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7739c621",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Seaborn 版本为： 0.11.2\n",
      "['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size']\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0xba4ae10>"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwEAAAFcCAYAAACQkLIVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACckUlEQVR4nOzdeXxU1d348c+9c2fNTPaVfd8RUFEBFVErCiIC7ntbH7X601bbWvXRLj5q9amP1K2ttrZWq+IGgigoihuLCMoi+x4IBJJM1klmudvvj2ggJkDInsz3/XrxejF35p57zmTmzP2eVbFt20YIIYQQQggRN9S2zoAQQgghhBCidUkQIIQQQgghRJyRIEAIIYQQQog4I0GAEEIIIYQQcUaCACGEEEIIIeKMBAFCCCGEEELEGQkCRIfxk5/8hOLiYgD+67/+i+3bt7dpfu655x5eeOGFFr/Otddey8KFC1v8OkKIzqk91p1nnHEGU6dOZerUqUyaNInf/va3FBYWAnDw4EGuuOKKNs2jEPFAa+sMCNFQS5curfn/3//+9zbMiRBCdBztse684YYb+OlPfwqAbds899xz3HjjjcyePZusrCxmzZrVxjkUovOTIEB0CPfeey8A119/Pc8//zxXX301Tz75JFVVVTzxxBPk5OSwa9cuvF4vN910Ey+//DK7du3ivPPO47777gNg8eLF/PWvf0XXdTweD7/5zW8YNWpUrets376dX/7yl3Wuf9111zFjxowG5TUvL48pU6awevXqOo9nz57NokWLUFWV3NxcPB4Pjz32GH379qWwsJDf/e537Ny5E1VVueKKK7juuusA+Pjjj3nhhRcoKipizJgxPPTQQ6iqdOQJIY6uI9SdiqJwyy23MGfOHJYuXUqfPn1q6synn36affv2UVhYyL59+8jKyuJPf/oTmZmZnH322UybNo3ly5eTn5/P1KlT+cUvfnHUPD/99NOsWbOGgoICBg4cyOOPP94M77IQHZQtRAcxYMAAOxgM2rZt2xMmTLDXrVtnf/nll/bgwYPtDRs22LZt2z/96U/tyy+/3I5Go3YwGLSHDh1qHzhwwN61a5d94YUX2sXFxbZt2/bWrVvtcePG2ZWVlY3Oz29+8xv7H//4R53je/futUeOHFnv47fffts+6aST7Pz8fNu2bfvBBx+07777btu2bfu2226zH3vs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\n",
      "text/plain": [
       "<Figure size 777.475x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 1. 导入 seaborn 模块\n",
    "import seaborn as sns\n",
    "print(\"Seaborn 版本为：\", sns.__version__)\n",
    "\n",
    "# ['anagrams', 'anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'exercise', 'flights', \n",
    "# 'fmri', 'gammas', 'geyser', 'iris', 'mpg', 'penguins', 'planets', 'taxis', 'tips', 'titanic']\n",
    "# print(sns.get_dataset_names())\n",
    "\n",
    "# 2. 设置默认主题\n",
    "sns.set_theme()\n",
    "\n",
    "# 加载seaborn自带的 tips 数据\n",
    "tips = sns.load_dataset(\"tips\", cache=True, data_home=\"data\")\n",
    "print(tips.columns.values.tolist())\n",
    "\n",
    "# 绘制图表\n",
    "# 显示了 total_bill tip time smoker size 五个变量之间的关系\n",
    "sns.relplot(\n",
    "    data=tips,\n",
    "    x=\"total_bill\", y=\"tip\", col=\"time\",\n",
    "    hue=\"smoker\", style=\"smoker\", size=\"size\",\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "6ed3ad45",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制直方图\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "_, ax = plt.subplots()\n",
    "ax.set_xlabel(\"total_bill\")\n",
    "ax.set_ylabel(\"Count\")\n",
    "ax.set_title(\"Hist total_bill of dinner time\")\n",
    "x = tips.loc[tips.loc[:, \"time\"] == \"Dinner\", \"total_bill\"]\n",
    "n, bins, patches = ax.hist(x.to_numpy(), bins=12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "e7dddc9d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x102cc588>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 360x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "x = tips.loc[tips.loc[:, \"time\"] == \"Dinner\", \"total_bill\"]\n",
    "g = sns.displot(x, bins=12)\n",
    "g.set(title=\"Hist total_bill of dinner time\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7006a27b",
   "metadata": {},
   "source": [
    "从直方图可以看出来，晚餐时间，大部分人的花销在10-25。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5cfdc679",
   "metadata": {},
   "source": [
    "## seaborn 绘图接口\n",
    "\n",
    "分为以下 5 类图表：\n",
    "1. Relational plots：关系图\n",
    "  - relplot\n",
    "  - scatterplot\n",
    "  - lineplot\n",
    "2. Distribution plots：分布图\n",
    "  - displot\n",
    "  - histplot\n",
    "  - kdeplot\n",
    "  - ecdfplot\n",
    "  - rugplot\n",
    "  - distplot\n",
    "3. Categorical plots：分类图\n",
    "  - catplot\n",
    "  - stripplot\n",
    "  - swarmplot\n",
    "  - boxplot\n",
    "  - violinplot\n",
    "  - boxenplot\n",
    "  - pointplot\n",
    "  - barplot\n",
    "  - countplot\n",
    "4. Regression plots：回归图\n",
    "  - lmplot\n",
    "  - regplot\n",
    "  - residplot\n",
    "5. Matrix plots：矩阵图\n",
    "  - heatmap\n",
    "  - clustermap\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4f924948-027f-4188-b612-c53fcfd76a27",
   "metadata": {},
   "source": [
    "# 参考\n",
    "\n",
    "1. Waskom, M. L., (2021). seaborn: statistical data visualization. Journal of Open Source Software, 6(60), 3021, https://doi.org/10.21105/joss.03021\n",
    "2. [An introduction to seaborn](https://seaborn.pydata.org/introduction.html)\n",
    "3. [IPython Built-in magic commands](https://ipython.readthedocs.io/en/stable/interactive/magics.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ff9297e5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [conda env:visual] *",
   "language": "python",
   "name": "conda-env-visual-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
